Los datos obtenidos de Kaggle tienen la informacion atmosferica de varios años en australia, datos en los que viene incluida desde la velocidad del viento hasta la temperatura, en total 23 variables recogidas durante varios años en distintas ciudades de australia con las que se obtienen un data set de 140.000 lineas aproximadamente.
Nuestro objetivo será predecir la lluvia del dia siguiente con los datos metereologicos del dia.
Con este dataset tan grande lo primero que nos planteamos fue centrarnos en dos cosas
Utilizar una zona concreta de australia, sacada de la variable localizacion, de la cual elegimos 4 ciudades situadas en la costa sureste de Australia y
Utilizar la variable temporal de alguna forma, ya que considerabamos que tenia importancia pero no podiamos usar cada dia del año como un dato diferente, por lo que decidimos obtener apartir de la fecha la estacion del año en la que estaba cada linea,
## Dimensiones dataset train: 9824 25
## Dimensiones dataset test: 1228 25
## Dimensiones dataset validación: 1228 25
Analizamos las variables individuales por separado con distintos graficos.
## Date Season Location
## Min. :2007-11-01 Length:9824 Length:9824
## 1st Qu.:2010-05-14 Class :character Class :character
## Median :2012-08-31 Mode :character Mode :character
## Mean :2012-10-06
## 3rd Qu.:2015-01-23
## Max. :2017-06-25
##
## MinTemp MaxTemp Rainfall Evaporation
## Min. :-8.00 Min. : 4.10 Min. : 0.000 Min. : 0.000
## 1st Qu.: 7.90 1st Qu.:17.10 1st Qu.: 0.000 1st Qu.: 2.400
## Median :11.60 Median :21.40 Median : 0.000 Median : 4.200
## Mean :11.44 Mean :22.01 Mean : 2.165 Mean : 5.018
## 3rd Qu.:15.50 3rd Qu.:26.10 3rd Qu.: 0.600 3rd Qu.: 6.800
## Max. :33.90 Max. :45.80 Max. :119.400 Max. :43.400
## NA's :9 NA's :8 NA's :181 NA's :2493
## Sunshine WindGustDir WindGustSpeed WindDir9am
## Min. : 0.00 Length:9824 Min. : 11.00 Length:9824
## 1st Qu.: 4.10 Class :character 1st Qu.: 31.00 Class :character
## Median : 7.90 Mode :character Median : 39.00 Mode :character
## Mean : 7.15 Mean : 40.64
## 3rd Qu.:10.20 3rd Qu.: 48.00
## Max. :13.90 Max. :106.00
## NA's :2667 NA's :1104
## WindDir3pm WindSpeed9am WindSpeed3pm Humidity9am
## Length:9824 Min. : 0.00 Min. : 0.00 Min. : 5.00
## Class :character 1st Qu.: 7.00 1st Qu.:13.00 1st Qu.: 56.00
## Mode :character Median :11.00 Median :19.00 Median : 68.00
## Mean :13.27 Mean :18.82 Mean : 67.22
## 3rd Qu.:19.00 3rd Qu.:24.00 3rd Qu.: 80.00
## Max. :63.00 Max. :65.00 Max. :100.00
## NA's :207 NA's :199 NA's :71
## Humidity3pm Pressure9am Pressure3pm Cloud9am
## Min. : 4.00 Min. : 982.3 Min. : 985.5 Min. :0.000
## 1st Qu.:37.00 1st Qu.:1013.6 1st Qu.:1011.4 1st Qu.:2.000
## Median :48.00 Median :1018.6 Median :1016.3 Median :6.000
## Mean :48.95 Mean :1018.5 Mean :1016.2 Mean :4.694
## 3rd Qu.:60.00 3rd Qu.:1023.5 3rd Qu.:1021.1 3rd Qu.:7.000
## Max. :99.00 Max. :1040.2 Max. :1037.8 Max. :9.000
## NA's :30 NA's :201 NA's :196 NA's :4111
## Cloud3pm Temp9am Temp3pm RainToday
## Min. :0.000 Min. :-1.30 Min. : 3.70 Length:9824
## 1st Qu.:2.000 1st Qu.:11.70 1st Qu.:15.90 Class :character
## Median :5.000 Median :15.40 Median :20.00 Mode :character
## Mean :4.696 Mean :15.55 Mean :20.56
## 3rd Qu.:7.000 3rd Qu.:19.30 3rd Qu.:24.50
## Max. :8.000 Max. :38.60 Max. :44.70
## NA's :4298 NA's :24 NA's :17
## RISK_MM RainTomorrow
## Min. : 0.000 Length:9824
## 1st Qu.: 0.000 Class :character
## Median : 0.000 Mode :character
## Mean : 2.164
## 3rd Qu.: 0.800
## Max. :119.400
##
Antes que nada, visualizamos información básica de las ciudades elegidas y estaciones. Cómo están relacionadas con RainToday y con la variable de salida RainTomorrow.
Realizamos un conteo del número de dÃas que han llovido o no en cada una.
Si filtramos por los dÃas en los que sà llueve (RainToday = 1), vemos las veces que ha llovido el dÃa siguiente o no.
Vemos que en Adelaide, Canberra y Melbourne no suele ser fuecuente que llueva el dÃa siguiente si ha llovido hoy. En Sydney en cambio, es más fequente que llueva si ha llovido el dÃa anterior.
Representamos ahora los dÃas que han llovido en función de las ciudades y las estaciones del año.
En Adelaide y Melbourne las estaciones sà influyen más en la fecuencia de dÃas que llueven, mientras que en Sydney y Canberra suele ser más homogénero.
Analizamos las variables individuales por separado con distintos gráficos.
En este dataset hay muchos pares de variables que están fuertemente relacionadas, por ejemplo la temperatura máxima y mÃnima de un dÃa, o la presión a las 9 de la mañana y la presión a las 3 de la tarde. Por ello, en el análisis individual de variables se estudiarán a la vez por una mejor comprensión.
Temperatura mÃnima
## Min. 1st Qu. Median Mean 3rd Qu. Max. NA's
## -8.00 7.90 11.60 11.44 15.50 33.90 9
Temperatura máxima
## Min. 1st Qu. Median Mean 3rd Qu. Max. NA's
## 4.10 17.10 21.40 22.01 26.10 45.80 8
## `stat_bin()` using `bins = 30`. Pick better value with `binwidth`.
## `stat_bin()` using `bins = 30`. Pick better value with `binwidth`.
La temperatura mÃnima se podrÃa asimilar a una distribución normal. La temperatura máxima tiene una cola a su derecha en la que aparecen mútliples valores atÃpicos.
Las variables Temp9am y Temp3pm son muy parecidas a las temperaturas máximas y mÃnimas. Temperatura 9am
## Min. 1st Qu. Median Mean 3rd Qu. Max. NA's
## -1.30 11.70 15.40 15.55 19.30 38.60 24
Temperatura 3pm
## Min. 1st Qu. Median Mean 3rd Qu. Max. NA's
## 3.70 15.90 20.00 20.56 24.50 44.70 17
## `stat_bin()` using `bins = 30`. Pick better value with `binwidth`.
## `stat_bin()` using `bins = 30`. Pick better value with `binwidth`.
Estas variables tienen un comportamiento parecido a la temperatura mńima y máxima respectivamente.
Presión a las 9am
## Min. 1st Qu. Median Mean 3rd Qu. Max. NA's
## 982.3 1013.6 1018.6 1018.5 1023.5 1040.2 201
Presión a las 3pm
## Min. 1st Qu. Median Mean 3rd Qu. Max. NA's
## 985.5 1011.4 1016.3 1016.2 1021.1 1037.8 196
## `stat_bin()` using `bins = 30`. Pick better value with `binwidth`.
## `stat_bin()` using `bins = 30`. Pick better value with `binwidth`.
Parecen tener una distribución normal ambas variables.
Humedad a las 9am
## Min. 1st Qu. Median Mean 3rd Qu. Max. NA's
## 982.3 1013.6 1018.6 1018.5 1023.5 1040.2 201
Humedad a las 3pm
## Min. 1st Qu. Median Mean 3rd Qu. Max. NA's
## 982.3 1013.6 1018.6 1018.5 1023.5 1040.2 201
## `stat_bin()` using `bins = 30`. Pick better value with `binwidth`.
## `stat_bin()` using `bins = 30`. Pick better value with `binwidth`.
Nubes a las 9am
## Min. 1st Qu. Median Mean 3rd Qu. Max. NA's
## 0.000 2.000 6.000 4.694 7.000 9.000 4111
Nubes a las 9am
## Min. 1st Qu. Median Mean 3rd Qu. Max. NA's
## 0.000 2.000 5.000 4.696 7.000 8.000 4298
## `stat_bin()` using `bins = 30`. Pick better value with `binwidth`.
## `stat_bin()` using `bins = 30`. Pick better value with `binwidth`.
Velocidad del viento a las 9am
## Min. 1st Qu. Median Mean 3rd Qu. Max. NA's
## 0.00 7.00 11.00 13.27 19.00 63.00 207
Velocidad del viento a las 9am
## Min. 1st Qu. Median Mean 3rd Qu. Max. NA's
## 0.00 13.00 19.00 18.82 24.00 65.00 199
## `stat_bin()` using `bins = 30`. Pick better value with `binwidth`.
## `stat_bin()` using `bins = 30`. Pick better value with `binwidth`.
WindGustDir: The direction of the strongest wind gust in the 24 hours to midnight. WindGustSpeed: The speed (km/h) of the strongest wind gust in the 24 hours to midnight.
Velocidad más fuerte del viento
## [1] ""
## Min. 1st Qu. Median Mean 3rd Qu. Max. NA's
## 11.00 31.00 39.00 40.64 48.00 106.00 1104
## `stat_bin()` using `bins = 30`. Pick better value with `binwidth`.
Analizamos cuatro variables que no están, a priori, relacionadas por pares.
RISK_MM
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 0.000 0.000 0.000 2.164 0.800 119.400
## `stat_bin()` using `bins = 30`. Pick better value with `binwidth`.
Rainfall
## Min. 1st Qu. Median Mean 3rd Qu. Max. NA's
## 0.000 0.000 0.000 2.165 0.600 119.400 181
## `stat_bin()` using `bins = 30`. Pick better value with `binwidth`.
Velocidad de Evaporation
## Min. 1st Qu. Median Mean 3rd Qu. Max. NA's
## 0.000 2.400 4.200 5.018 6.800 43.400 2493
## `stat_bin()` using `bins = 30`. Pick better value with `binwidth`.
Horas de Sunshine
## Min. 1st Qu. Median Mean 3rd Qu. Max. NA's
## 0.00 4.10 7.90 7.15 10.20 13.90 2667
## `stat_bin()` using `bins = 30`. Pick better value with `binwidth`.
Analizamos la relación unas variables con otras.
Gracias a este gráfico demostramos que los pares de variables citados sà están fuertemente relacionados. Por ejemplo, la presión a las 9 de la mañana con la presión a las 3 de la tarde: si una aumenta, la otra también. Destacar que también hay correlaciones inversas: cuando aumenta la variable Sunshine, disminuye la Cloud9am.
Analizamos en general la relación entre las variables con las estaciones, la variable de salida (RainTomorrow) y las ciudades. Para ello seleccionamos una de las variables de los pares y el resto. Las variables Rainfall y Risk_mm no las mostramos pues su distribución es difÃcil de visualizar. Se analizarán posteriormente con las transformaciones.
Relaciones por estaciones.
La Temperatura (MaxTemp, Temp9am), la presión (Pressure3pm) y evaporación muestran un claro comportamiento diferente según la estación.
Relaciones por ciudades.
La temperatura es la variable dónde se puede observar más claramente que tiene un comportamiento diferente para cada ciudad.
Relaciones por RainTomorrow, si llueve o no.
Las variables interesantes a analizar con más detalle son: la temperatura, la humedad, la presión y los rayos de sol.
A partir de estas relaciones, indagamos con más detalle las relaciones que parecen interesantes.
Las cuatro variables de temperatura son muy parecidas, como puede observarse en sus distribuciones:
Al estar relacionadas y tener un comportamiento similar posteriormente se estudiará introdudir al modelo interacciones entre éstas.
Veamos cómo se comporta una de ellas según las estaciones y ciudades:
Comprobamos que los pares de temperaturas están fuertemente relacionados.
## `geom_smooth()` using method = 'gam' and formula 'y ~ s(x, bs = "cs")'
## `geom_smooth()` using method = 'gam' and formula 'y ~ s(x, bs = "cs")'
Analizamos otras variables más en detalle.
Veamos cómo se comporta la presión según las estaciones y ciudades:
Comprobamos cómo de relacionadas están las variables de presión entre ellas.
Veamos cómo se comporta la humedad según las estaciones y ciudades:
Comprobamos cómo de relacionadas están las variables de humedad entre ellas.
Veamos cómo se comporta la evaporación según las estaciones y ciudades:
Veamos cómo se comportan las horas de sol según las estaciones y ciudades:
Veamos cómo se comporta la velocidad del viento según las estaciones y ciudades:
Veamos cómo se comportan las nubes del viento según las estaciones y ciudades:
Veamos cómo se comportan la velocidad del viento y su dirección según las estaciones y ciudades:
Añadir estos gráficos (Rainfall y RISK_MM) después de analizar las transformaciones.
Lo mismo para RISK_MM
Ahora crearemos unas nuevas varibles combinandolas entre si. Primero MinTemp y MaxTemp
Segundo Temp9am y Temp3pm
Por ultimo Pressure9am y Pressure3pm